﻿// =====================================================================
//
//  This file is part of the Microsoft Dynamics CRM SDK code samples.
//
//  Copyright (C) Microsoft Corporation.  All rights reserved.
//
//  This source code is intended only as a supplement to Microsoft
//  Development Tools and/or on-line documentation.  See these other
//  materials for detailed information regarding Microsoft code samples.
//
//  THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//  PARTICULAR PURPOSE.
//
// =====================================================================
using System;
using System.ServiceModel.Description;
using SL.IdentityModel.Protocols.WSTrust;

namespace Microsoft.Xrm.Sdk.Client
{
	public sealed class AuthenticationCredentials
	{
		#region Public Properties
		public Uri AppliesTo { get; set; }
		public Uri HomeRealm { get; set; }
		public String UserPrincipalName { get; set; }
		private ClientCredentials _clientCredentials = new ClientCredentials();
		public ClientCredentials ClientCredentials
		{
			get { return _clientCredentials; }
			set { _clientCredentials = value; }
		}

		public RequestSecurityTokenResponse SecurityTokenResponse { get; set; }
		public AuthenticationCredentials SupportingCredentials { get; set; }

		#endregion Public Properties

		#region Internal Properties
		internal IssuerEndpoint IssuerEndpoint
		{
			get
			{
				return IssuerEndpoints != null ? IssuerEndpoints.GetIssuerEndpoint(EndpointType) : null;
			}
		}
		internal TokenServiceCredentialType EndpointType { get; set; }
		internal String RequestType { get; set; }
		internal String KeyType { get; set; }
		internal IssuerEndpointDictionary IssuerEndpoints { get; set; }
		#endregion Internal Properties
	}
}
